Feature/NVMulator#369
Conversation
cahz
left a comment
There was a problem hiding this comment.
Thank you for the contribution. I have a couple of change requests related to the toolflow part. Someone else needs to look at the runtime changes.
| return false | ||
| } | ||
|
|
||
| proc add_nvmulator {} { |
There was a problem hiding this comment.
This needs to accept arguments and pass it through
There was a problem hiding this comment.
Thanks for your review.
Done.
| connect_bd_net [get_bd_pins /memory/mig/c0_ddr4_ui_clk] [get_bd_pins /memory/NVEmulator_0/CLK] | ||
| connect_bd_net [get_bd_pins /memory/mem_peripheral_aresetn] [get_bd_pins /memory/NVEmulator_0/RST_N] | ||
|
|
||
|
|
||
| puts "Adding NVMulator 0 programmer: memory-side" | ||
| delete_bd_objs [get_bd_intf_nets /memory/mig_ic_M00_AXI] | ||
| connect_bd_intf_net [get_bd_intf_pins /memory/NVEmulator_0/M_AXI_MIG] [get_bd_intf_pins /memory/mig/C0_DDR4_S_AXI] | ||
| connect_bd_intf_net [get_bd_intf_pins /memory/mig_ic/M00_AXI] [get_bd_intf_pins /memory/NVEmulator_0/S_AXI_NV] | ||
|
|
||
| puts "Connecting NVMulator programmer: memory-side" | ||
| create_bd_cell -type ip -vlnv xilinx.com:ip:smartconnect:1.0 /memory/smartconnect_0 | ||
| set_property -dict [list CONFIG.NUM_CLKS {2} CONFIG.NUM_MI {1} CONFIG.NUM_SI {1}] [get_bd_cells /memory/smartconnect_0] | ||
| connect_bd_net [get_bd_pins /memory/smartconnect_0/aclk] [get_bd_pins /memory/mig/c0_ddr4_ui_clk] | ||
| connect_bd_net [get_bd_pins /memory/smartconnect_0/aclk1] [get_bd_pins /memory/design_clk] | ||
| connect_bd_net [get_bd_pins /memory/mem_peripheral_aresetn] [get_bd_pins /memory/smartconnect_0/aresetn] | ||
| current_bd_instance "/memory" | ||
| set s_nvm [create_bd_intf_pin -mode Slave -vlnv xilinx.com:interface:aximm_rtl:1.0 "S_NVM"] | ||
| connect_bd_intf_net [get_bd_intf_pins /memory/S_NVM] [get_bd_intf_pins /memory/smartconnect_0/S00_AXI] | ||
| connect_bd_intf_net [get_bd_intf_pins /memory/smartconnect_0/M00_AXI] [get_bd_intf_pins /memory/NVEmulator_0/S_AXI] |
There was a problem hiding this comment.
This is not portable and has too many assumptions on port names. It will only work on the Alveo U280. In the current form, the plugin should not be under platform/common but instead restricted to U280.
There was a problem hiding this comment.
I made it general. I tried it on AU250 and the plugin was able to integrate NVMulator as expected.
| exit 1 | ||
| } | ||
|
|
||
| save_bd_design |
There was a problem hiding this comment.
Please remove debugging commands such as save_bd_design
| puts "Connecting NVMulator programmer: host to memory" | ||
| connect_bd_intf_net [get_bd_intf_pins /host/M_NVM] [get_bd_intf_pins /memory/S_NVM] | ||
|
|
||
| current_bd_instance |
There was a problem hiding this comment.
does this command have any function when used without parameter?
There was a problem hiding this comment.
Yes, it uses default value (i.e., 0 for read_latency and write_latency).
There was a problem hiding this comment.
I was refering to the current_bd_instance
There was a problem hiding this comment.
I see. I also updated input for current_bd_instance
|
|
||
| current_bd_instance | ||
| } | ||
| } |
| namespace eval nvmulator { | ||
|
|
||
| proc is_nvmulator_supported {} { | ||
| puts "AU280" |
There was a problem hiding this comment.
This output is not meaningful. Either leave it out or add more context.
|
I had a short look at the runtime changes. If I understand it correctly, the changes to the runtime basically just configure the NVMulator IP (via an AXI-Lite slave), correct? I want to propose some alternatives, on how to achieve this:
|
…_nvmulator proc, and Indentation
|
Is there any progress on this PR? I agree with the suggestions of @wirthjohannes, we need a more general approach to get this PR merged. |
No description provided.